import abc
import sys
from abc import ABC
from functools import reduce


# 获取命令行输入的整数x和y，计算并输出
def run():
    # 获取输入
    _list = sys.argv[1:3]  # 索引0是文件名

    # 判断列表是否全为整数
    try:
        # numbers = list(map(int, _list))
        _list[0] = int(_list[0])
        _list[1] = int(_list[1])
    except ValueError:
        print("请输入两个整数")
        return 0

    # 计算 print(sum(numbers)) reduce(lambda x, y: x+y, numbers)
    print(_list[0] + _list[1])

tourist = 0
member = 1
vip = 2
vvip = 3
def block():
    pass

def new_block():
    pass


class User:
    def __init__(self):
        self.name = None
        self.money = 0
        self.type = None


def pay(user):
    if user.type is tourist:
        block
    elif user.type is member:
        block
    elif user.type is vip:
        block
    # ...


class User:

    def __init__(self):
        self.type = None

    def pay(self):
        block


providers = dict()


class Vip(User):

    def __init__(self):
        global providers
        self.type = "vip"
        providers["vip"] = self

    def pay(self):
        print("vip service")


def pay_center(user):
    providers.get(user.type).pay()


vip1 = Vip()
pay_center(vip1)


# 根据id获取用户，根据时间获取用户

def get_user_by_id(user_id):
    pass


def get_users_by_create_time(create_time):
    pass


class Logger:

    def info(self, info_text):
        pass

    def debug(self, debug_text):
        pass

    def warn(self, warn_text):
        pass

    # ...


class Logger(metaclass=abc.ABCMeta):

    @abc.abstractmethod
    def log(self, log_text):
        pass


class Info(Logger):

    def __init__(self):
        pass


class Person:
    def move(self):
        pass


class Stone:
    def move(self):
        pass


def move(obj):
    obj.move()


person = Person()
stone = Stone()
move(person)
move(stone)

